{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b9edd03f-449e-49fd-b70f-d5f3da537920",
   "metadata": {},
   "source": [
    "# 机器学习入门"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "2489e09f-8ed1-4f34-9192-683f711095fd",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import scipy as sp\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import sklearn\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "43083ad4-1ccc-4704-ab3d-336b1ae9df2c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "regr = LinearRegression()\n",
    "K=5 \n",
    "b=10\n",
    "x0=np.arange(0,20).reshape(-1,1)\n",
    "y0=K*x0+b                                           ##构建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "dd6ada86-ec7b-4830-93c6-613667dc1fb0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-15 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-15 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-15 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-15 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-15 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-15 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-15 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-15 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-15 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-15 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-15 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-15 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-15 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-15 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-15 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-15\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-15\" type=\"checkbox\" checked><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr.fit(x0,y0)                  ##拟合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "276733f9-4ae5-4100-8e3f-00a5bdb805a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[5.]]), array([10.]))"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr.coef_, regr.intercept_      ##系数和截距"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "567797bc-6d0d-4d84-a10c-eadb3beb116f",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ef9623ac00>]"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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OQycDh5dMVdERKQ+JOyZVdcVlTIyO5d1RaXhOwo+hFn9wiXE1Rh++SQMzVYJERERqUcJu0UkZ3UxKzbvZv6n39J149OwfAqYELQ4Obwr5rhOdkcUERGJewlVRIpKKimpCGBZsChvKxmU0n/NZOAzACo6XUGTwdPB3cTeoCIiIgkioYpIv6nLav67ryOfGZ6nyKCMSuPhnsAY5q8+m4LLVUJEREQaSkIdIzJjRHdcDotG+JmR9BQZVhkbQlkMqnqIRZzDjBHd7Y4oIiKSUBJqi8jg0zM5sWUKA5/4kNsDY+nvWMmD1Vfjx83i8X3pnOm1O6KIiEhCSagicqAPTDfer+4WPj+ZsTuNiIhIYkq4IpKe4iYjxcPxzRoxomcW81YWsq10P+kpbrujiYiIJBzLGBPV2wN8Ph9er5eysjJSUyNzjRd/dRC304FlWRhjqAqG8LicEXltERERqf3nd8JtEQEOKh2WZamEiIiI2CShvjUjIiIi0UVFRERERGyjIiIiIiK2URERERER26iIiIiIiG1URERERMQ2KiIiIiJiGxURERERsY2KiIiIiNhGRURERERsE/WneP/+Ujg+n8/mJCIiIlJb339uH+mSdlFfRMrLywHIysqyOYmIiIgcrfLycrxe7yEfj/qr74ZCIbZu3UrTpk2xLCtir+vz+cjKyqKwsDBiV/WNZon0fvVe41civV+91/iVKO/XGEN5eTknnHACDsehjwSJ+i0iDoeD1q1b19vrp6amxvUvwv9KpPer9xq/Eun96r3Gr0R4v4fbEvI9HawqIiIitlEREREREdskbBHxeDw88MADeDweu6M0iER6v3qv8SuR3q/ea/xKtPd7JFF/sKqIiIjEr4TdIiIiIiL2UxERERER26iIiIiIiG1UROLEa6+9RocOHXC5XJx55pls2LDhiMsMGjQIy7JqbhdeeGEDJJXamjt37kHz8/1t7ty5h11O8xq9du/eTfv27SkoKKi5ry7rLmieo83/zm1d119IwLk1ceqzzz4zP/3pT02zZs3MHXfcYUKh0BGXee+998wpp5xi0tPTzWOPPdYAKSNj48aNpnnz5mbevHlm+/btZvjw4aZPnz5HXO744483n332mSkpKTElJSVm7969DZD22I0fP94ANbeOHTsecZlYnFu/318zNyUlJaawsNC0aNHCbNq06bDLxdq87tq1y7Rr185s2bKl5r66rL/GRPc879y50/Tu3dsANe+1ruuuMdE/zz82r3VZd42J7nk15sfntq7rrzHRP7eRFpdFZP/+/aZdu3bmhhtuMBs3bjSXXHKJefbZZw+7zHfffWdSU1PNgw8+aL766itzxhlnmKVLlzZQ4mOzaNEiM3PmzJrx0qVLjdvtPuwyhYWFplWrVvUdrV6cddZZ5vXXX69ZSX0+32GfH8tze6BJkyaZ66+//rDPibV5/bF/wOuy/hoT/fN8wQUXmBkzZhz0Xuuy7hoT/fP8Y/NqzNGvu8ZE/7wa8+Nz+79qs/4aE/1zWx/isojMnz/fNG/e3FRUVBhjjFm7dq3p27fvYZd5/PHHzcknn1zzl9eCBQvMlVdeWe9Z68PMmTNNp06dDvucV1991WRkZJjMzEyTnJxsRowYYfbs2dNACesuEAiYpk2bmvLy8lovEw9zu2/fPtOyZctD/iP3vVib1x/7B7wu668x0T/P3/8lfLgPq9qsu8ZE/zz/2LzWZd01Jvrn1Zgjz21t119jon9u60NcHiOSl5dH7969SU5OBqBr166sX7/+iMucf/75NRfW69WrF6tXr673rJFWVVXFtGnTuOmmmw77vK+++ooePXrw1ltvsWrVKgoKCrj77rsbKGXdrVu3DmMM3bt3p3HjxvTv359vv/32sMvEw9y++OKL9O7dm3bt2h32ebE2r9nZ2dxyyy0H3VeX9ff75aJ5njt06HDYx2u77kL0z/OPzWtd1l2I/nmFI89tbddfiP65rRd2N6H6cNttt5mbbrrpoPtatGhx2FY5dOhQ88gjj9SM9+7da1JTU+stY32ZMGGC6datm6mqqjqq5d577z3TokWLekoVOX//+9/NmWeeaT755BOzefNmM3DgQNO/f//DLhMPc9uzZ0/zxhtvHPVysTKvHPCXZF3WX2NiZ545xF/NdV13jYneeT7wvdZl3TUmdubVmEPPbV3XX2Oid24jKeqvvlsXLpfrB6fObdSoEZWVlTRv3rxWy3z//FjyzjvvMGvWLHJzc0lKSjqqZZs1a8auXbvw+/1RfdrhK6+8kiuvvLJm/OSTT9KhQwd8Pt8hr2IZ63O7ceNGNm7cWKcj52NlXg9Ul/X3x5aLpXk+lnUXYmOe67LuQmzPKxzb+guxMbfHKi53zaSlpbFz586D7isvL8ftdtd6mSM9P9ps3ryZK6+8kpkzZ9KpU6cjPn/YsGHk5ubWjFeuXEmrVq1i7he9WbNmhEIhtm3bdsjnxPrcvvTSSwwcOLBWH1DxMK91WX9/bLlYmeejXXchPua5NusuxO68fu9o1l+Ij7k9WnFZRHr27HnQRBYUFOD3+0lLS6v1MmvXriUzM7Nec0bKvn37GDhwIIMHD+bSSy9l79697N27F2MMPp+PQCDwg2W6du3K7373Oz7++GMWL17MfffdV6t903a77bbbeOmll2rGK1euxOFwkJWVdchlYnluAd58803OO++8g+6Lt3k9UF3W3x9bLhbm+XDrLsTXPNdl3YXYnNcD/dj6C/E1t8fM7n1D9SEQCJiMjAzz3HPPGWOMueGGG8zAgQONMcaUlZX96D7YnTt3mkaNGpmlS5eaQCBgBgwYYMaPH9+guetq/vz5B303//vbli1bTNu2bc38+fN/sExVVZUZM2aMadq0qenYsaN58MEHTSAQaPjwR+m5554zJ554olm+fLl59913zSmnnGLGjBljjInPua2srDRut9ts2LDhoPvjbV75n29XHGr9NSb255n/+YbQodZdY2J/ng98L4dbd42J/Xk15ofHiBxq/TUm9uc2kuKyiBgTXsEbN25sWrZsadLT001+fr4x5tCTb4wxTz31lElKSjItWrQwbdu2Ndu3b2/AxFJbd911l2nWrJnJysoyN998c83JfjS3set//wE/1PprjOY5lvzvvB5q3TVG85rILGP+sw0wDhUXF7Nq1Sr69OlDRkZGrZbZuHEjGzZs4Nxzzz3sAVQSezS3saUu6y9onuOV5jV+xXURERERkegWlwerioiISGxQERERERHbqIiIiIiIbVRERERExDYqIiIiImIbFRERERGxjYqIiIiI2EZFRERERGyjIiIiIiK2+X/wIqh4I/Cd8gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x0,y0,\"*\")\n",
    "plt.plot(x0,y0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "d7b8db62-00ac-4d2b-a419-78bda5224a0a",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ef962634a0>]"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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coZjUhRDMwCAjBbwebkwNYXRIwIAmBCzkyJRCCIAgAkxOykShSACAACs4RoRAMComJ0UyUAQAQCMitlJkQwEEQDAqJidFMlAEAEAjCpZs5OGnGHt7jiuxpr5DPVkIS5WBQBYxS9ysptrQeR3v/ud5s+fr9mzZ2vFihXq6+uTJHV3d6u6ulpFRUVqbm6WMcatUwIAkoTZSZEorgSRd955Rz/84Q/10ksvqaenRwsWLNBdd92laDSqVatWadmyZers7FRPT4927tzpxikBAEl0fnZSt4ZOQs6wugfCsZukuOdMnJY9XLlG5K233lJtba2uvfZaSdK6det02223ac+ePQqHw9qyZYsKCgq0adMm3XfffVq3bp0bpwUApCl+kYPzXAkiFRUV2rdvn9566y0tWrRITz75pOrr63Xo0CHV1taqoKBAklRVVaWenp5xjxWNRhWN/mec0HEcN4oIAEgh/CIH57kWRG699dZYj0hZWZk6OjrU2tqqsrKy2PtycnKUm5urwcFBFRUVjXqszZs367HHHnOjWACAFJWsX+Qg9blyjciBAwf0yiuvqKOjQ5FIRN/5znd04403Ki8vTx5PfKr1er0aGhoa81gbN25UOByO3fr7+90oIgAASEGuBJHnn39ed9xxh6677jrNnj1bP/nJT3Ts2DEVFxfrxIkTce+NRCLKz88f81gej0c+ny/uBgDIXPwiJ7u5MjTz2WefaXBwMPY8Eono008/VV5eng4cOBDb3tfXp2g0quLiYjdOCwDIAOd/kYPs5EqPyPXXX6+2tjZt3bpVzz33nFavXq158+bpgQceUDgc1q5duyRJra2tWrFihXJzc904LQAASHOu9Ijcfvvtevvtt/XEE0/ogw8+UGVlpdra2jRr1izt2LFDa9euVXNzs86ePav9+/e7cUoAAJABckwSpjodGBhQZ2enli9frpKSkint6ziO/H6/wuEw14sAAJAmJvv9nZRF74LBoILBYDJOBQAA0giL3gEAAGsIIgCQBCFnWFv3HmENFeBzCCIAkAQsdQ+MjiACABmAHhekq6RcrAoA2SjkDMd6QC5c6v68QKHnovVWpn2u/+9xqa+Y59oxgWQgiABAgrDUPTAxgggAJEiil7pPZo8LkCgEEQBIkEQvdU+PCzIBQQQA0lSie1yAZCCIAEASJGKp+0T3uADJQBABgCRgqXtg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ft26LSODyPDwsFm4cKFZv369OXr0qLnxxhvNM888M+4+oVDI+Hw+89hjj5kjR46Ya6+91uzbty9JJZ6ZV155xWzfvj32fN++fSY/P3/cffr7+83ll1+e6KIlxFe/+lXzpz/9KdZIHccZ9/3pXLcX+ulPf2ruueeecd+TbvU62h/w6bRfY1K/nuvq6swTTzwR91mn03aNSf16Hq1ejZl62zUm9evVmNHr9vMm036NSf26TYSMDCIvvviiKSoqMp9++qkxxpiDBw+a66+/ftx9tm7daq6++urY/7xeeukl09jYmPCyJsL27dtNRUXFuO/54x//aEpKSkwwGDQFBQXm9ttvN5988kmSSjh9Z86cMYWFhSYSiUx6n0yo21OnTplAIDDmH7nz0q1eR/sDPp32a0zq1/P5/wmP92U1mbZrTOrX82j1Op22a0zq16sxE9ftZNuvMalft4mQkdeIHDp0SLW1tSooKJAkVVVVqaenZ8J9vvnNb8YW1rvuuuv0j3/8I+Flddvp06f1+OOP69577x33fUeOHNGyZcv0+uuvq7OzU319ffrBD36QpFJO3z//+U8ZY/TlL39Zl156qVauXKnjx4+Pu08m1O1zzz2n2tpaLVy4cNz3pVu97tixQ01NTXHbptN+z++XyvW8aNGicV+fbNuVUr+eR6vX6bRdKfXrVZq4bifbfqXUr9uEsJ2EEuHBBx809957b9y2uXPnjpsq16xZY37+85/Hnp88edL4fL6ElTFRmpubzZe+9CVz+vTpKe33xhtvmLlz5yaoVO75/e9/b2pqaszf//53c+zYMdPQ0GBWrlw57j6ZULfV1dXmz3/+85T3S5d61QX/k5xO+zUmfepZY/yvebpt15jUrecLP+t02q4x6VOvxoxdt9Ntv8akbt26KeVX352OvLy8i6bO9Xq9GhoaUlFR0aT2Of/+dLJ371499dRTOnDggGbNmjWlfefMmaOPPvpI0Wg0pacdbmxsVGNjY+z5r371Ky1atEiO44y5imW61+3Ro0d19OjRaV05ny71eqHptN/R9kunep5J25XSo56n03al9K5XaWbtV0qPup2pjByaKS4u1okTJ+K2RSIR5efnT3qfid6fao4dO6bGxkZt375dFRUVE77/1ltv1YEDB2LP33zzTV1++eVp9w99zpw5OnfunD744IMx35PudfvCCy+ooaFhUl9QmVCv02m/o+2XLvU81bYrZUY9T6btSulbr+dNpf1KmVG3U5WRQaS6ujquIvv6+hSNRlVcXDzpfQ4ePKhgMJjQcrrl1KlTamho0OrVq3XzzTfr5MmTOnnypIwxchxHZ86cuWifqqoqbdiwQR0dHXr11Vf16KOPTmps2rYHH3xQL7zwQuz5m2++qUsuuUSlpaVj7pPOdStJr732mr7xjW/Ebcu0er3QdNrvaPulQz2P13alzKrn6bRdKT3r9UKjtV8ps+p2xmyPDSXCmTNnTElJiXn22WeNMcasX7/eNDQ0GGOMCYfDo47Bnjhxwni9XrNv3z5z5swZc9NNN5n7778/qeWerhdffDHut/nnb++++65ZsGCBefHFFy/a5/Tp0+buu+82hYWFZvHixeaxxx4zZ86cSX7hp+jZZ581V111ldm/f79pb28311xzjbn77ruNMZlZt0NDQyY/P98cPnw4bnum1as+9+uKsdqvMelfz/rcL4TGarvGpH89X/hZxmu7xqR/vRpz8TUiY7VfY9K/bt2UkUHEmJEGfumll5pAIGAuu+wy093dbYwZu/KNMebJJ580s2bNMnPnzjULFiwwH374YRJLjMlqaWkxc+bMMaWlpeaBBx6ITfZD3aavz/8BH6v9GkM9p5PP1+tYbdcY6jWb5Rjz/32AGWhgYECdnZ1avny5SkpKJrXP0aNHdfjwYX39618f9wIqpB/qNr1Mp/1K1HOmol4zV0YHEQAAkNoy8mJVAACQHggiAADAGoIIAACwhiACAACsIYgAAABrCCIAAMAagggAALCGIAIAAKwhiAAAAGv+DwAQYCpyGmcfAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "noise = np.random.normal(0, 3, y0.shape)           ##添加噪音\n",
    "y1=y0+noise\n",
    "plt.plot(x0,y1,\"+\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "8cadbfef-f1c6-4b0c-838c-6f325cceafe5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-16 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-16 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-16 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-16 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-16 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-16 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-16 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-16 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-16 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-16 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-16 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-16 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-16 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-16 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-16 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-16 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-16 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-16 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-16\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" checked><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr1 = LinearRegression()\n",
    "regr1.fit(x0,y1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "c385e265-673a-4717-accd-81c3c26f3eb6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[4.91275716]]), array([11.97559797]))"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr1.coef_, regr1.intercept_      ##系数和截距"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "22ebd4a0-5dd4-4401-b5a0-fdac71b4fe19",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ef9a4d3d10>]"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y = regr1.predict(x0)\n",
    "plt.plot(x0,y)\n",
    "plt.title('线性模型拟合结果{}'.format(regr1.coef_))\n",
    "plt.plot(x0,y1,\"+\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0472b799-8844-45ae-9efc-2c194cc72447",
   "metadata": {},
   "source": [
    "# 线性回归最小二乘"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "250f4832-f73e-4aeb-8f7c-977c51958b1e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LinregressResult(slope=5.0, intercept=10.0, rvalue=1.0, pvalue=9.49609375000032e-179, stderr=0.0, intercept_stderr=0.0)\n"
     ]
    }
   ],
   "source": [
    "from scipy import stats\n",
    "K=5 \n",
    "b=10\n",
    "x1=np.arange(0,20)\n",
    "y3=K*x1+b    \n",
    "res = stats.linregress(x1,y3)\n",
    "print(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "f749cf62-92f4-4689-b326-32d0aa38cbdc",
   "metadata": {},
   "outputs": [],
   "source": [
    "noise1= np.random.normal(0, 3, y3.shape)              ##添加噪音\n",
    "y4=y3+noise1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "70976577-7444-4621-8d22-b80bbd8d58df",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x1ef9a6ed7c0>"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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zTfNnj17TH9//7L71MLY9vT0mH/7t3+75/2qZVx1x1+SxRy/xlTPOKvAX83FHrvGVO443/ldizl2jamecTWm8NgWe/waU7lj66aKX323GI2NjYtK5/p8Pt24cUOtra2r2mehfTX5yU9+oueff15nzpzRfffdd0/7btiwQe+8847S6XRFlx3et2+f9u3bl3v+D//wD9q6dasSiUTBVSyrfWwvXLigCxcuFHXlfLWM652KOX6X2q+axnktx65UHeNczLErVfe4Sms7fqXqGNu1qsmpmUAgoKtXr+ZtSyaTWrdu3ar3Wal9pXnzzTe1b98+jYyMKBwOr9j+k5/8pM6cOZN7/vOf/1xtbW1V9w99w4YNymazisfjBdtU+9i++OKL2rNnz6p+oGphXIs5fpfar1rG+V6PXak2xnk1x65UveO64F6OX6k2xvZe1WQQ6enpyRvImZkZpdNpBQKBVe9z9uxZtbe3l7Sfbrl586b27Nmjxx9/XI899piuX7+u69evyxijRCKhW7duLdpn27Zt+ou/+Au9/vrr+tGPfqSvf/3rq5qbtu3pp5/Wiy++mHv+85//XA0NDero6Ci4TzWPrSSNj4/r93//9/O21dq43qmY43ep/aphnJc7dqXaGudijl2pOsf1Tksdv1Jtje2a2Z4bKoVbt26ZzZs3m+9///vGGGOefPJJs2fPHmOMMY7jLDkHe/XqVePz+cypU6fMrVu3zKOPPmq+8IUvlLXfxXr55Zfz7s1feExPT5sHH3zQvPzyy4v2ee+998znPvc509zcbDo7O83w8LC5detW+Tt/j77//e+bhx9+2Jw+fdr89Kc/NR/+8IfN5z73OWNMbY7tjRs3zLp168z58+fzttfauOquuysKHb/GVP846647hAodu8ZU/zjf+V2WO3aNqf5xNWbxNSKFjl9jqn9s3VSTQcSY2wf4+973PrNlyxazceNGE41GjTGFB98YY7797W+b++67z2zatMk8+OCD5vLly2XsMVbrq1/9qtmwYYPp6OgwX/ziF3PFfhjb6nX3f+CFjl9jGOdqcve4Fjp2jWFc65nHmP9/DrAGXbp0SZOTk9q5c6c2b968qn0uXLig8+fP6/d+7/eWvYAK1YexrS7FHL8S41yrGNfaVdNBBAAAVLaavFgVAABUB4IIAACwhiACAACsIYgAAABrCCIAAMAagggAALCGIAIAAKwhiAAAAGsIIgAAwJr/B//mEHx/ZeEjAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x1,y4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "c509398a-346a-47f8-a7ec-66d6affead05",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LinregressResult(slope=5.123226710014188, intercept=9.897186524613375, rvalue=0.995035565714359, pvalue=1.7084533652439674e-19, stderr=0.12077552169547073, intercept_stderr=1.3421850618079538)\n"
     ]
    }
   ],
   "source": [
    "##拟合线：\n",
    "res1 = stats.linregress(x1,y4)\n",
    "print(res1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "c5df950c-eacd-430a-baaa-a1e64580ea1a",
   "metadata": {},
   "outputs": [],
   "source": [
    "y5=res1.slope*x1+res1.intercept"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "41c9d0af-583e-4b50-8d96-ee88dd6eddb1",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ef9a79eae0>]"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGbCAYAAAD5mfsKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABDGklEQVR4nO3deXxU1f3/8ddkJ5BMEraEECBhNUQgQRBRa1WsqERRESH47bf661eLIq60amsp1QK1ilVBWltbtQgiKlpcsFYqFRUxJgRi2CEYQsIWmEwImSQz5/cHJSWSnUlmez8fj/lj7tx75zMc7sw799x7jsUYYxARERHxgCBPFyAiIiKBS0FEREREPEZBRERERDxGQUREREQ8RkFEREREPEZBRERERDxGQUREREQ8RkFEREREPCbE0wU0x+VysX//fqKiorBYLJ4uR0RERFrAGIPdbqdXr14EBTV+3sPrg8j+/ftJSkrydBkiIiLSBkVFRfTu3bvR170+iERFRQEnP0h0dLSHqxEREZGWKC8vJykpqe53vDFeH0ROdcdER0criIiIiPiY5i6r0MWqIiIi4jEKIiIiIuIxCiIiIiLiMQoiIiIi4jEKIiIiIuIxCiIiIiLiMQoiIiIi4jEKIiIiIuIxCiIiIiLiMQoiIiIi4jEKIiIiIuIxCiIiIiLiMQoiIiIiAWp1fgk/+dvXOF3GYzV4/ey7IiIi4l5VNU7mvb+Fl7/YC8CK7CKmjO7jkVoURERERAJI4eHj3LU0h2/2lwNwxyUp3Diyt8fqURAREREJEKvy9vPwW5upcNQS1zmMpyYP59LBPTxak4KIiIiIn6uqcfLrdwtY+uW3AIzuF8fTN4/g27JK3tlYTI+oCEYnxxEcZOnw2hRERERE/NiuQxXc9WoOW0vtWCww49IBDImPYtIfPqfEVlW3XoI1gtmZqYxPS+jQ+nTXjIiIiJ9ambuPzOfWsbXUTrcuYbxy22iG9opmxtLceiEEoNRWxfQlOazOL+nQGnVGRERExM+cqHYy++/5vJ69D4ALUrryzJQRdO0SzkW/XUNDN+sawALMWVXAFanxHdZNoyAiIiLiR3YcsHPnqznsOFhBkAXuuXwQMy4bQHCQhS92HTnjTMjpDFBiq2LDnjIu6N+1Q+pVEBEREfEDxhhWfL2PX76TT1WNi+5R4Tw7Jb1eoDhobzyEnK6l67mDgoiIiIiPO+6o5dG383krtxiAiwd24+mbR9CtS3i99XpERbRofy1dzx0URERERHzYlpJyZizNYdeh4wRZ4IEfDGb6Jf0JauAaj9HJcSRYIyi1VTV4nYgFiLeevJW3o+iuGRERER9kjGHpl98ycdFn7Dp0nPjoCF67/QLuunRAgyEEIDjIwuzMVOBk6DjdqeezM1M7dDwRBREREREfY6+qYeZrG3lk5WYctS4uHdyd9++5uEVnMsanJbD4lgzirfW7X+KtESy+JaPDxxFR14yIiIgPyS+2MWNpDoVHKgkJsjDrysH838UpjZ4Facj4tASuSI1nw54yDtqrNLKqiIiINM0Yw5L1e3ns3S1UO10kxnTi2anpjOwb26b9BQdZOuwW3aYoiIiIiHi58qoaHnpzE+9vLgVg3Dk9efKmYcREhnm4srOnICIiIuLF8oqOMWNZDkVlJwgNtvDwVedw64X9sFg6vhulPSiIiIiIeCFjDH/9rJB5H2yhxmlIiuvEwqkZDE+K8XRpbqUgIiIi4mWOVVYz641NfFRwAICr0uKZf+MwrJ1CPVyZ+ymIiIiIeJGcb49y99Jcio+dICw4iF9MOIf/GdPXb7pivktBREREpI2cLuO2W2BdLsOfPt3N7z7cRq3L0K9rJAuzMkhLtLq5au/S6gHNjhw5QnJyMoWFhXXL8vPzGTVqFLGxscyaNQtjTIteExER8VWr80u46LdrmPqn9dzz2kam/mk9F/12DavzS1q9r7Lj1fz4lWzmfbCVWpchc3gvVt19kd+HEGhlEDl8+DATJkyoF0IcDgeZmZmMHDmS7OxsCgoKeOmll5p9TURExFetzi9h+pIcSmz1Z6kttVUxfUlOq8LIV4VlXP3Mp6zZepDwkCDmXn8uz04ZQVSE/10P0pBWBZEpU6YwZcqUess++OADbDYbCxYsoH///sydO5cXX3yx2ddERER8kdNlmLOqoMFJ404tm7OqAKer6R4Al8uw6F87mfLCekrLq0jp3pm377qQrPP7YLFYcLoMX+w6wjsbi/li15Fm9+erWnWNyAsvvEBKSgr33ntv3bK8vDzGjBlDZGQkAMOGDaOgoKDZ1xrjcDhwOBx1z8vLy1tTooiISLvasKfsjDMhpzNAia2KDXvKGh259HCFg/uWb+TTHYcBuCE9kccmptE5/OTP8ur8EuasKqj3PgnWCGZnpnb4XDDtrVVnRFJSUs5YVl5eTnJyct1zi8VCcHAwR48ebfK1xsybNw+r1Vr3SEpKak2JIiIi7eqgvfEQ0pL1vth1hKuf+ZRPdxwmIjSIJyYN46nJw+uFEHd1+/iCs559NyQkhPDw8HrLIiIiqKysbPK1xjz88MPYbLa6R1FR0dmWKCIi4jY9oiKaX6mB9Zwuw+//uZ1pf17PQbuDgT26sGrGRUw+L6nu1lx3dfv4krO+fTcuLo78/Px6y+x2O2FhYU2+1pjw8PAzwouIiIi3GJ0cR4I1glJbVYOBwQLEW0/eynvKQXsV9762kc93HQFg8nm9mXNtGp3Cgutt645uH19z1mdERo0axfr16+ueFxYW4nA4iIuLa/I1ERERXxQcZGF2ZipwMnSc7tTz2ZmpdeOJrNtxmKuf+ZTPdx0hMiyYp28ezhOThp8RQuDsu3180VkHke9973vYbDZeeeUVAObPn8+4ceMIDg5u8jURERFfNT4tgcW3ZBBvrd/9Em+NYPEtGYxPS6DW6eLJD7fxP3/5ksMV1QyJj+LvMy7i+vTeje63rd0+vuysu2ZCQkJ44YUXyMrKYtasWTidTtauXdvsayIiIr5sfFoCV6TGNziyaqmtipmv5bJhTxkAWef34ZcTUokIbfoP8bZ0+/g6i3HTUKfFxcVkZ2czduxYunfv3uLXmlNeXo7VasVmsxEdHe2OUkVERNrNv7Yd5IHX8yg7Xk2X8BDm3nAu1w7v1eLtT901A9QLI6e6fU6dcfF2Lf39dlsQaS8KIiIi4gtqnC6e/Mc2/rh2NwBDe0WzKCuDft06t3pf/jCOSEt/vzXpnYiIyFkqPnaCmcty+XrvyXGy/veCvjx89TnNdsU0pqluH3+jICIiInIW/llwgAdW5GE7UUNURAhP3DiMq849+7MWwUEWv7lFtykKIiIiIm1QXeviidVb+fO6PQAM723luakZ9Oka6eHKfIuCiIiISCsVlVUyY1kueUXHALjtwmQeumoIYSFnPSpGwFEQERERaYXV+SXMemMT9qparJ1CefKm4VyR2tPTZfksBREREZEWcNQ6mfveFl7+Yi8AGX1ieHZqOr1j1RVzNhREREREmlF4+DgzluWQX1wOwB2XpPDgDwYTGqyumLOlICIiItKEdzft56E3N1PhqCU2MpQFk0dw6ZAeni7LbyiIiIiINKCqxsmv3y1g6ZffAjCqXyzPTk0nwdrJw5X5FwURERGR79h1qIK7Xs1ha6kdiwXu+v4A7h03kBB1xbidgoiIiMhp3s4t5pGVm6msdtK1cxi/nzKCiwe2bp40aTkFEREREeBEtZNf/f0blmcXAXBBSleemTKCHtERHq7MvymIiIhIwNtxwM5dS3PYfqACiwVmXjaQmZcP9Mu5XbyNgoiIiAS0FdlF/PKdbzhR46R7VDjP3DyCsQO6ebqsgKEgIiIifsvpMo3OYHvcUcuj7+TzVk4xABcP7MaCySPoHhXuyZIDjoKIiIj4pdX5JcxZVUCJrapuWYI1gtmZqfTr1pm7Xs1h16HjBFng/isGcef3BxCkrpgOpyAiIiJ+Z3V+CdOX5GC+s7zEVsVPluQQGmyhxmnoGR3Os1PSOT+lq0fqFAURERHxM06XYc6qgjNCyOlqnIZLBnVnweThdO2irhhP0sgsIiLiVzbsKavXHdOY27+XohDiBRRERETErxy0Nx9CAA5XONq5EmkJBREREfErPaJaNgBZS9eT9qUgIiIifmV0chxdO4c1+rqFk3fPjE6O67iipFEKIiIi4jeMMbz8eSHHTtQ0+Pqpm3NnZ6Zq1FQvobtmRETELxyrrGbWG5v4qOAAAOlJMey3neBA+X+vBYn/zzgi49MSPFWmfIeCiIiI+Lycb49y99Jcio+dICw4iJ9fcw4/vKAvLkOjI6uKd1AQERERn+VyGf68bjdPrN5GrcvQt2ski7IySEu0AhBsgQv6a7Ayb6YgIiIiPqnseDUPrshjzdaDAEwYlsC8G84lKiLUw5VJayiIiIiIz/mqsIyZy3IpsVURFhLE7MxUskb3wWJRt4uvURARERGf4XIZFq/dxYKPtuN0GVK6dWZhVgapvaI9XZq0kYKIiIj4hMMVDu5bvpFPdxwG4Pr0RB6fmEbncP2U+TK1noiIeL0vdh3hntdyOWh3EBEaxK+vTeOm83qrK8YPKIiIiIjHOF2mydtrnS7DwjU7eebj7bgMDOjRheenZTCoZ5QHqxZ3UhARERGPWJ1fwpxVBfVmyk04bcCxg/Yq7n1tI5/vOgLATSN7M+e6oUSG6afLn6g1RUSkw63OL2H6khzMd5aX2qqYviSHmZcP4NUvv+VwRTWdQoP5zfVp3JDR2yO1SvtSEBERkQ7ldBnmrCo4I4QAdcue+XgnAEPio1iYlcGAHl06rD7pWAoiIiLSoTbsKavXHdOYy4b04PlpGUSEBndAVeIpmn1XREQ61EF78yEE4LoRvRRCAoCCiIiIdKgeURFuXU98m4KIiIh0qNHJcSRYGw8ZFk7ePTM6Oa7jihKPURAREZEOFRxk4fr0Xg2+dmoEkdmZqfXGExH/pYtVRUSkw1TXunhi9Vb+vG4PAKHBFmqc/71/Jv60cUQkMCiIiIhIhygqq2TGslzyio4BcNuFyTx45SDyimyNjqwq/k9BRERE2t3q/BJmvbEJe1Ut0REhPHnTcH4wNB6AC/p39XB14kkKIiIi0m4ctU7mvreFl7/YC0B6nxiem5pO79hID1cm3kJBRERE2kXh4ePMWJZDfnE5ALd/L4VZVw4mNFj3Sch/KYiIiIjbvbtpPw+9uZkKRy2xkaE8NXk4lw3p6emyxAspiIiIiNtU1Th57N0CXv3yWwDO6xvLc1npJFg7ebgy8VYKIiIi4ha7DlVw16s5bC21A3Dn9/tz/xWDCFFXjDRBQURERM7a27nFPLJyM5XVTrp2DmPBzSO4ZFB3T5clPkBBRERE2uxEtZNf/f0blmcXATAmJY5npqTTM1rzxEjLKIiIiEib7Dhg566lOWw/UIHFAndfNpB7Lh+oAcmkVRRERESk1VZkF/HLd77hRI2Tbl3CeXbKCMYO6ObpssQHKYiIiEiTnC7Dhj1lHLRXER0Ryt/z9rMytxiAiwZ04+mbR9A9KtzDVYqvUhAREZFGrc4vYc6qAkpsVfWWWyxw/7hB3HnpAHXFyFlREBERkQatzi9h+pIcTAOvGQMDe3ZRCJGzppu7RUTkDE6XYc6qggZDCIAFmLOqAKersTVEWkZBREREzrBhT9kZ3TGnM0CJrYoNe8o6rijxS24LIn/729/o06cPXbp0Ydy4cRQWFgKQn5/PqFGjiI2NZdasWRij9Cwi4s2MMbyZs69F6x60Nx5WRFrCLUFk165d/PznP+ftt9+moKCAvn378qMf/QiHw0FmZiYjR44kOzubgoICXnrpJXe8pYiItIPyqhruWprDG1+3LIj0iNLAZXJ23BJEcnNzGTNmDBkZGfTp04dbb72V7du388EHH2Cz2ViwYAH9+/dn7ty5vPjii+54SxERcbNN+44x4dl1vL+5lJAgC1ERjd/PYAESrBGMTo7ruALFL7nlrpnU1FTWrFlDbm4uKSkpLFq0iCuuuIK8vDzGjBlDZGQkAMOGDaOgoKDJfTkcDhwOR93z8vJyd5QoIiKNMMbw188KmffBFmqchsSYTizMSudAeRXTl+ScXOe09U/dJzM7M1V3zchZc8sZkdTUVCZNmkRGRgYxMTF8+eWXPPnkk5SXl5OcnFy3nsViITg4mKNHjza6r3nz5mG1WuseSUlJ7ihRREQaYKus4Y6/fc2v3y2gxmm4cmhP3p95Mel9YhmflsDiWzKIt9bvfom3RrD4lgzGpyV4qGrxJxbjhqtH169fz4033sjKlStJTU1l3rx5/OMf/+Cyyy6jpqaGBQsW1K2blJTE+vXrSUxMbHBfDZ0RSUpKwmazER0dfbaliojIf+R8e5S7l+ZSfOwEYcFBPHL1EP53bD8slvpnOU4fWbVH1MnuGJ0JkeaUl5djtVqb/f12S9fM8uXLmTJlCqNHjwbg8ccf5w9/+AOTJk0iPz+/3rp2u52wsLBG9xUeHk54uIYKFhFpLy6X4c/rdvPE6m3Uugx94iJZlJXBub2tDa4fHGThgv5dO7hKCRRuCSK1tbX1ulvsdjvHjx8nJCSE9evX1y0vLCzE4XAQF6eLm0REPOHo8WoeWJHHmq0HAbhmWALzbjiX6IhQD1cmgcot14hceOGFvPXWWzz99NMsXbqUiRMn0rNnT2bOnInNZuOVV14BYP78+YwbN47g4GB3vK2IiLTCV4VlXP3sp6zZepCwkCAen5jGwqnpCiHiUW45I3LzzTezbds2fv/731NSUkJaWhpvvfUWoaGhvPDCC2RlZTFr1iycTidr1651x1uKiEgLuVyGxWt3seCj7ThdhpRunVmYlUFqL113J57nlotVm1NcXEx2djZjx46le/furdq2pRe7iIjImQ5XOLhv+UY+3XEYgIkjevH49efSJVxznkr76tCLVZuTmJjY6F0yIiLSPr7YdYR7XsvloN1BRGgQc64dyuTzks64K0bEkxSJRUT8jNNlWLhmJ898vB2XgQE9urAoK4PB8VGeLk3kDAoiIiJ+5KC9intf28jnu44AMGlkb3593VAiw/R1L95J/zNFRPzEuh2HuXd5LocrqukUGszjE9O4cWRvT5cl0iQFERERH1frdPHMxztY+K+dGAODe0axaFoGA3p08XRpIs1SEBER8WGltipmLstlQ2EZAJcN6cFzU9PprLtixEe4ZUAzERHpeJ9sO8i4BWvrQgjAmq0nl63OL/FgZSItpyAiIuJjapwu5n+wlR/99SsqHLVnvF5qq2L6khyFEfEJOncnItLO3Dl77f5jJ7h7WS5f7z3a6DoGsABzVhVwRWq8ZsoVr6YgIiLSjlbnlzBnVQEltqq6ZQnWCGZnpjI+LaFV+/pnwQEefCOPY5U1dAoN5kSNs9F1DVBiq2LDnjLNnCteTV0zIiLtZHV+CdOX5NQLIdD6rpPqWhePv1vAj1/J5lhlDcN6W3nwykEt2vagvar5lUQ8SEFERKQdOF2GOasKaGgyr1PL5qwqwOlqerqvorJKJv/xC/68bg8At17YjxU/uYDUBGuL6ugRFdGKqkU6nrpmRETawYY9ZWecCTldS7pOPvymlFkr8iivqiU6IoTf3TScK4fGAzA6OY4EawSltqoGw44FiLeevB5FxJvpjIiISDtoaZdIQ+s5ap386u/fcMffvqa8qpYRSTG8f8/FdSEEIDjIwuzMVOBk6DjdqeezM1N1oap4PQUREZF20NIuke+ut/fIcSYt/oKXPi8E4PbvpbDiJxfQOzbyjG3HpyWw+JYM4q319xFvjWDxLRmtvhhWxBPUNSMi0g7a0nXy3qYSHnpzE3ZHLTGRoSyYPJzLhvRs8n3GpyVwRWq8224PFuloCiIiIu3gVNfJ9CU5WKBeGPlu10lVjZPH3ytgyfpvATivbyzPTk2nV0ynFr+XbtEVX6WuGRGRdtKSrpPdhyq4/vnP60LInd/vz2u3j2lxCBHxdTojIiIBz50jn35XU10n72ws5pG3NnO82knXzmEsuHkElwzq7pb3FfEVCiIiEtDcOfJpY77bdXKi2smcVd/w2ldFAJyfHMezU9PpGa0xPyTwqGtGRAKWu0Y+bY2dB+1MXPQZr31VhMUCMy8fyKs/Pl8hRAKWzoiISEBqbuTT9pg07o2v9/Ho2/mcqHHSrUs4z0wZwYUDurll3yK+SkFERAKSO0Y+banK6lp++c43vPH1PgAuHNCVp28eoeHXRVAQEZEAdTYjn7bGtlI7dy3NYefBCoIscN+4Qdx56QCN8yHyHwoiIhKQ2jryaUsZY3g9u4hfvvMNjloXPaPDeWZKOmNSNN6HyOkUREQkILXnpHEVjlp+sXIzb2/cD8Alg7qzYPJwunYJP7uiRfyQ7poRkYDUXpPGFewv59rn1vH2xv0EB1n42fgh/PVHoxRCRBqhICIiAcudk8YZY1iyfi8Tn/+M3YePk2CNYPntY5j+/f4E6XoQkUapa0ZEApo7Jo0rr6rh4bc2896mk+OOXD6kB0/eNJzYzmHtVbaI31AQEZGAdzaTxm3eZ2PGshz2HqkkJMjCQ1cN4f9dlIzForMgIi2hICIi0gbGGF7+vJC572+l2ukiMaYTC7PSSe8T6+nSRHyKgoiISCvZKmv46Zt5fPjNAQB+kNqT300ajjUy1MOVifgeBRERkVbYWHSMGUtz2Hf0BGHBQTxy9RD+d2w/dcWItJGCiIhICxhjeHHdHuZ/sJVal6FPXCSLsjI4t7fV06WJ+DQFERGRZhw9Xs2DK/L4eOtBAK4ZlsC8G84lOkJdMSJnS0FERKQJX+8t4+6luey3VREWEsQvJ6Qy7fw+6ooRcRMFERGRBrhchj/+ezdP/mMbTpchuVtnFmalM7SXumJE3ElBRETkO45UOLj/9TzWbj8EwHUjevGb68+lS7i+MkXcTUeViMhpvtx9hJmv5XKg3EFEaBBzrh3K5POS1BUj0k4UREREAKfL8Py/dvL0P7fjMjCgRxcWZWUwOD7K06WJ+DUFEREJeIfsDu5bvpF1Ow8DMGlkb3593VAiw/QVKdLedJSJSED7fOdhZr62kcMVDjqFBvP4xDRuHNnb02WJBAwFEREJSE6X4ZmPd/Dcmh0YA4N7RrFoWjoDeqgrRqQjKYiISMA5UF7FPa/lsn53GQBTRycxO3MoEaHBHq5MJPAoiIhIQFm7/RD3L9/IkePVdA4LZu4N53LdiERPlyUSsBRERCQg1DpdLPhoO89/sguAcxKiWZSVTkr3Lh6uTCSwKYiIiN8rsZ1g5rJcvio8CsD/jOnLz685R10xIl5AQURE/NqarQd44PU8jlbWEBUewvwbh3HNsARPlyUi/6EgIiJ+qcbp4ncfbuOFf+8G4NxEKwuz0unbtbOHKxOR0ymIiIjf2Xe0khlLc9lYdAyAH43tx8NXDyE8RF0xIt5GQURE/MqH35Qya0Ue5VW1REeE8MSk4YxPi/d0WSLSCAUREfEL1bUu5n2whb9+VgjA8KQYFk5NJyku0rOFiUiTFERExOd9e6SSGcty2LTPBsD/XZzMrCuHEBYS5OHKRKQ5CiIi4tPe31zCz97YhN1RS0xkKE9OGs641J6eLktEWkhBRER8UlWNk9+8t4W/rd8LwMi+sTw3NZ1eMZ08XJmItIaCiIj4nD2Hj3PXqzkUlJQDMP37/bn/ikGEBqsrRsTXKIiIiE9wugwb9pTxQX4Jr2cXUVXjIq5zGAsmD+f7g3t4ujwRaSMFERHxeqvzS/jV37+htNxRtyws2MKsKwcphIj4uHY5j/nQQw+RmZlZ9zw/P59Ro0YRGxvLrFmzMMa0x9uKiB9anV/CT5bk1AshANVOwyNv5bM6v8RDlYmIO7g9iOTn5/P888/z+9//HgCHw0FmZiYjR44kOzubgoICXnrpJXe/rYj4IafL8LM3Nze5zpxVBThd+uNGxFe5NYgYY7jjjju499576d+/PwAffPABNpuNBQsW0L9/f+bOncuLL77ozrcVET9UWV3LbS99he1ETaPrGKDEVsWGPWUdV5iIuJVbg8if/vQnNm7cSHJyMu+++y41NTXk5eUxZswYIiNPjm44bNgwCgoK3Pm2IuJntpXauXbhZ6zdfqhF6x+0V7VzRSLSXtwWRCoqKvjFL37BwIED2bdvHwsWLOB73/se5eXlJCcn161nsVgIDg7m6NGjDe7H4XBQXl5e7yEigcEYw/KvvuW6RevYebCCmMjQFm3XIyqinSsTkfbitiDy1ltvcfz4cdasWcOjjz7KP/7xD44dO8Zf/vIXwsPD660bERFBZWVlg/uZN28eVqu17pGUlOSuEkXEi1U4arlv+UZ+9uZmqmpcXDywGx/e+z0SrBFYGtnGAiRYIxidHNeRpYqIG7ktiOzbt4/zzz+fuLiTXwghISEMGzaMqqoqDh2qf3rVbrcTFhbW4H4efvhhbDZb3aOoqMhdJYqIlyrYX861z63j7Y37CQ6yMOvKwbx862h6RkcwOzMV4Iwwcur57MxUgoMaiyoi4u3cFkSSkpI4ceJEvWV79+7lqaeeYv369XXLCgsLcTgcdYHlu8LDw4mOjq73EBH/ZIxhyfq9THz+M3YfPk58dASv3T6Guy4dQNB/wsX4tAQW35JBvLV+90u8NYLFt2QwPi3BE6WLiJtYjJsG9SgrKyMlJYX58+czYcIE3nrrLX7605+Sn5/P2LFjefLJJ/nhD3/IT37yE4qLi1m1alWL9lteXo7VasVmsymUiPgRe1UND721mfc2nRwH5LIhPXjypuHEdW74bOmpkVUP2qvoEXWyO0ZnQkS8V0t/v90WRADWr1/PAw88QG5uLvHx8SxYsICJEyfy9ttvk5WVRVRUFE6nk7Vr1zJ06FC3fhAR8R2b99mYsSyHvUcqCQmy8NPxg/nxRSl1Z0FExPd5JIg0pbi4mOzsbMaOHUv37t1bvJ2CiIj/MMbw8ueFzH1/K9VOF4kxnXguK52MPrGeLk1E3Kylv98dNtdMYmIiiYmJHfV2IuJlbCdq+Nkbm1j9TSkAV6T25MlJw7G28BZdEfFPmvRORNrdxqJjzFiaw76jJwgNtvDwVedw64X9sFjUFSMS6BRERKTdGGN4cd0e5n+wlVqXISmuEwunZjA8KcbTpYmIl1AQEZF2cayymgdX5PHPLQcBuPrceObfOIzoCHXFiMh/KYiIiNt9vbeMu5fmst9WRVhwEI9OOIdbxvRVV4yInEFBRETcxuUy/PHfu3nyH9twugz9ukayMCuDtESrp0sTES+lICIibnGkwsEDK/L4ZNvJKR2uHd6LuTecS5dwfc2ISOP0DSEiZ+3L3UeY+VouB8odhIcE8atrhzJlVJK6YkSkWQoiItJmTpfh+X/t5Ol/bsdlIKV7ZxZlZXBOggYfFJGWURARkTY5ZHdw3/KNrNt5GIAb0hN5bGIandUVIyKtoG8MEWm1z3ce5p7lGzlkd9ApNJhfXzeUm85L8nRZIuKDFEREpMWcLsMzH+/guTU7MAYG9ezCoqwMBvaM8nRpIuKjFEREpEUOlFdxz2u5rN9dBsDN5yXxq2uH0iks2MOViYgvUxARkWb9e/sh7lu+kSPHq4kMC2bu9ecyMV2TWIrI2VMQEZFG1TpdLPhoO89/sguAIfFRLJqWQf/uXTxcmYj4CwUREWlQie0EM5fl8lXhUQCmnd+HRyekEhHacFeM02XYsKeMg/YqekRFMDo5juAgjSMiIk1TEBGRM6zZeoAHXs/jaGUNXcJDmH/juUwY1qvR9VfnlzBnVQEltqq6ZQnWCGZnpjI+LaEjShYRHxXk6QJExHvUOF3MfX8Lt72UzdHKGtISo3n37ouaDSHTl+TUCyEApbYqpi/JYXV+SXuXLSI+TGdERASAfUcruXtZLrnfHgPgR2P78fDVQwgPafyuGKfLMGdVAaaB1wxgAeasKuCK1Hh104hIgxRERIR/fFPKgyvyKK+qJSoihN9NGtaiLpUNe8rOOBNyOgOU2KrYsKeMC/p3dWPFIuIvFEREAlh1rYt5H2zhr58VAjA8KYaFU9NJiots0fYH7Y2HkLasJyKBR0FEJEB9e6SSGcty2LTPBsCPL0rmp+OHEBbS8kvHekRFuHU9EQk8CiIiAej9zSX87I1N2B21WDuF8tRNwxmX2rPV+xmdHEeCNYJSW1WD14lYgHjryVt5RUQaortmRAJIVY2TR9/O585Xc7A7ahnZN5b377m4TSEEIDjIwuzMVOBk6DjdqeezM1N1oaqINEpBRCRA7Dl8nBsXf87f1u8F4CeX9Oe128eQGNPprPY7Pi2BxbdkEG+t3/0Sb41g8S0ZGkdERJqkrhmRAPDOxmIeeWszx6udxHUO46nJw7l0cA+37X98WgJXpMZrZFURaTUFERE/VlXjZM6qb1i2oQg4OVfM1NFJRIQE43QZtwaF4CCLbtEVkVZTEBHxUzsPVjBjaQ5bS+1YgM7hwWwttTP77wWAhmAXEe+ga0RE/NCbX+8j87l1bC21ExURggEqHM5662gIdhHxBgoiIl7C6TJ8sesI72ws5otdR3C6GrohtmmV1bU8uCKPB1bkcaLGyQUpXenUyGy5p/Y+Z1VBm95LRMQd1DUj4gXcMXvt9gN27no1hx0HKwiywD2XD+K8vrFMe/HLRrfREOwi4mk6IyLiYWc7e60xhuVffcu1C9ex42AFPaLCefXHY7hn3EAOH3e0qAYNwS4inqIzIiIedLaz11Y4avnFys28vXE/ABcP7MbTN4+gW5dwQEOwi4j3UxAR8aCzmb22YH85M5bmsPvwcYKDLNx/xSCmX9KfoNMCi4ZgFxFvp64ZEQ9qy+y1xhhe/XIvE5//jN2HjxMfHcFrt4/hrksH1AshoCHYRcT7KYiIeFBru07sVTXMWJbLz1fmU13r4tLB3Xn/nosZ1a/xMxoagl1EvJm6ZkQ8qDVdJ/nFNu5amsPeI5WEBFn46fjB/PiilDPOgjREQ7CLiLeyGGO8egCB8vJyrFYrNpuN6OhoT5cj4nan7poB6oWRUxHh+WnpHLRX85v3tlDtdJEY04lnp6Yzsm9sh9cqItJSLf39VteMiIc11XXy1ORhvLOxhNl//4Zqp4srUnvy3syLFEJExG+oa0bECzTUdRIeEsTM13LZd/QEocEWHr7qHG69sB8Wi7pTRMR/KIiIeIlTs9caY3hx3R5+u3orNU5DUlwnFk7NYHhSjKdLFBFxOwURkVZwuky7XvB5rLKaB1fk8c8tBwG4Ki2e+TcOw9op1G3vISLiTRRERFrIHfPBNOXrvWXcvTSX/bYqwoKDeHTCOdwypq+6YkTEr+liVZEWONv5YJrichn+sHYXk/+4nv22Kvp1jeStO8fyPxfoehAR8X86IyLSjLOdD6YpRyocPLAij0+2HQIgc3gv5l6fRlSEumJEJDAoiIg042zmg2luv3cvy+FAuYPwkCB+de1QpoxK0lkQEQkoCiIizWjLfDBNcbkMz3+ykwUfbcdlIKV7ZxZlZXBOggbsE5HAoyAi0ozWzgfTlEN2B/e/vpFPdxwG4Ib0RB6bmEbncB2KIhKY9O0n0ozWzAfTlM93Huae5Rs5ZHcQERrEY9elcdN5Se1Ss4iIr9BdMyLNCA6yMDszFfjv/C+nnHo+OzO10QtVnS7D0x9tZ9qLX3LI7mBQzy6smnGRQoiICAoiIi3S1Hwwi2/JaHQckYPlVdzy5y955uMdGAOTz+vNO3ddxMCeUR1RtoiI11PXjEgLNTQfTFMjq3664xD3Ld/I4YpqIsOC+c31aVyf3ruDqxYR8W4KIiKtcGo+mKbUOl38/p87WPTJToyBIfFRLJqWQf/uXTqoShER36EgIuJGJbYT3LNsIxsKywCYdn4fHp2QSkRosIcrExHxTgoiIm7yr60Huf/1jRytrKFLeAjzbjiXzOG9PF2WiIhXUxAROUs1ThdPfriNP/57NwBpidEsnJpBv26dPVyZiIj3UxAROQvFx05w99Iccr49BsCPxvbj4auHEB6irhgRkZZQEBFpo48KDvDgijxsJ2qIigjhd5OGNXobr4iINKxdxhEZP348L730EgD5+fmMGjWK2NhYZs2ahTENjU0p4juqa1089m4B//dKNrYTNQzvbeX9mRcrhIiItIHbg8irr77Khx9+CIDD4SAzM5ORI0eSnZ1NQUFBXUAR8UVFZZXc9McveHHdHgB+fFEyK34ylqS4SA9XJiLimyzGjacoysrKSE1NJSYmhoceeoiYmBhuu+029u3bR2RkJHl5edx1112sW7euxfssLy/HarVis9mIjtbspOI5q/NLmPXGJuxVtVg7hfLUTcMZl9rT02WJiHillv5+u/UakQceeIDrr7+eEydOAJCXl8eYMWOIjDz51+KwYcMoKChw51uKtDtHrZO5723h5S/2ApDRJ4bnsjJIjOnk4cpERHyf24LIv/71Lz7++GPy8/OZOXMmcDINJScn161jsVgIDg7m6NGjxMbGNrgfh8OBw+Goe15eXu6uEkVarfDwcWYsyyG/+OT/wzsuSeHBHwwmNFjTNImIuINbvk2rqqq44447WLx4cb3TLyEhIYSHh9dbNyIigsrKykb3NW/ePKxWa90jKUkzlIpnrMrbz4Tn1pFfXE5c5zD+eusoHr7qHIUQERE3css36mOPPcaoUaO45ppr6i2Pi4vj0KFD9ZbZ7XbCwsIa3dfDDz+MzWarexQVFbmjRJEWq6px8sjKzdy9LJcKRy2j+8Xx/syLuXRwD0+XJiLid9zSNbN06VIOHTpETEwMAJWVlbz++uv069ePmpqauvUKCwtxOBzExcU1uq/w8PAzzqKIdJRdhyq469UctpbasVhgxqUDuOfygYToLIiISLtwSxD59NNPqa2trXv+4IMPMmbMGH70ox+RmprKK6+8wg9/+EPmz5/PuHHjCA7WqJPifVbm7uPnK/OprHbSrUsYT988gosHdvd0WSIifs0tQaR37971nnfp0oVu3brRrVs3XnjhBbKyspg1axZOp5O1a9e64y1F3OZEtZPZf8/n9ex9AFyQ0pVnpoygR3SEhysTEfF/bh1HpDHFxcVkZ2czduxYundv3V+YGkdE2tOOA3bufDWHHQcrCLLAPZcPYsZlAwgOsni6NBERn+aRcUQak5iYSGJiYke8lUiLGGNY8fU+fvlOPlU1LrpHhfPslHQu6N/V06WJiAQUTXonAee4o5ZH387nrdxiAC4e2I2nbx5Bty66SFpEpKMpiEhA2VJSzoylOew6dJwgCzzwg8FMv6Q/QeqKERHxCAURCQjGGJZtKGLOqm9w1LqIj47g2anpjE5u/FZyERFpfwoi4vfsVTU8sjKfVXn7Abh0cHeemjyCuM6ND6wnIiIdQ0FE/Fp+sY0ZS3MoPFJJSJCFWVcO5v8uTlFXjIiIl1AQEb9kjOFv6/fy+LtbqHa6SIzpxLNT0xnZt+HJFkVExDMURMTv2E7U8PBbm3h/cykA487pyZM3DSMmUl0xIiLeRkFE/Epe0TFmLMuhqOwEocEWHr7qHG69sB8Wi7piRES8kYKI+AVjDH/5rJD5H2yhxmnoHduJRVkZDE+K8XRpIiLSBAUR8XnHKqt5cMUm/rnlAABXpcUz/8ZhWDuFergyERFpjoKI+LSv9x5l5rJcio+dICw4iF9MOIf/GdNXXTEiIj5CQUR8kstl+NOnu/ndh9uodRn6dY1kYVYGaYlWT5cmIiKtoCAiPqfseDUPvL6Rf207BEDm8F7MvT6NqAh1xYiI+BoFEfEpG/aUMXNZLqXlVYSHBDE7cyhTRyepK0ZExEcpiIhPcLkMi9fuYsFH23G6DCndO7MoK4NzEqI9XZqIiJwFBRHxeocrHNy3fCOf7jgMwA3piTw2MY3O4frvKyLi6/RNLl7ti11HuOe1XA7aHUSEBvHr69K4aWRvdcWIiPgJBRHxSk6X4bk1O3j24x24DAzs0YVF0zIY1DPK06WJiIgbKYhIh3K6DBv2lHHQXkWPqAhGJ8cR/J2ZcA/aq7j3tY18vusIAJPP682ca9PoFBbsiZJFRKQdKYhIh1mdX8KcVQWU2KrqliVYI5idmcr4tAQA1u04zL3LczlcUU1kWDCPT0zjhozenipZRETamYKIdIjV+SVMX5KD+c7yUlsV05fksDArnS0ldhZ9shNjYEh8FAuzMhjQo4tH6hURkY6hICLtzukyzFlVcEYIAeqW3bd8I9XOk8+yzu/DLyekEhGqrhgREX+nICLtbsOesnrdMQ2pdho6hQbz20nDuHZ4rw6qTEREPC3I0wWI/ztobzqEnHL/DwYphIiIBBgFEWl3PaIiWrReWi9NWCciEmgURKTdjU6OI8EaQWNDkFk4effM6OS4jixLRES8gIKItLvgIAs/v3pIgxerngonszNTzxhPRERE/J8uVpV2V1RWyZ/WFTb4Wvx3xhEREZHAoiAi7Wp1fgmz3tiEvaoWa6dQnpg0jOiI0CZHVhURkcChICLtwlHrZO57W3j5i70ApPeJ4bmp6fSOjfRwZSIi4k0URMTtCg8fZ8ayHPKLywG445IUHvzBYEKDdUmSiIjUpyAibvXupv089OZmKhy1xEaGsmDyCC4d0sPTZYmIiJdSEBG3qKpx8ut3C1j65bcAjOoXy7NT00mwdurQOloyu6+IiHgPBRE5a7sOVXDXqzlsLbVjscCd3+/PfeMGEdLBXTEtmd1XRES8izrt5ayszN1H5nPr2Fpqp2vnMF6+dTSzrhzikRAyfUnOGXPanJrdd3V+SYfWIyIiLaMzItImJ6qdzP57Pq9n7wNgTEocz05Jp0d0y4Zzd6fmZve1AHNWFXBFary6aUREvIyCiLTajgN27lqaw/YDFVgsMPOygcy8fKDHfuSbm93XACW2KjbsKeOC/l07rjAREWmWgoi0yorsIh59J5+qGhfdo8J55uYRjB3QzaM1tXR235auJyIiHUdBRFrkuKOWR9/J562cYgAuGtCNp28eQfeocA9X1vLZfVu6noiIdBwFEWnWlpJyZizNYdeh4wRZ4P4rBnHn9wcQ5CXXW5ya3bfUVtXoxHrxmt1XRMQrKYhIPaePw9G9Szi7Dx/nsXcLcNS66BkdzrNT0jk/xbuuswgOsjA7M5XpS3KwQL0wotl9RUS8m4KI1GloHI5Tvj+4O0/dNJyuXTzfFdOQ8WkJLL4l44z6NbuviIh3UxAR4L/jcDTUtQEw+bzeXhtCThmflsAVqfEaWVVExIcoiEiT43DAye6Nx97dwpVDE7z+Rz04yKJbdEVEfIhGVpVWjcMhIiLiTgoiwleFLQsYGodDRETcTV0zAcwYw18+K+SZj3e0aH2NwyEiIu6mIBKgjlVWM+uNTXxUcACAiJAgqmpdDa6rcThERKS9KIgEoJxvj3L30lyKj50gLDiIn19zDj2iwrjz1VxA43CIiEjHURAJIC6X4U+f7uZ3H26j1mXo2zWShVMzOLe3FYDFt1g0DoeIiHQoBZEAUXa8mgdX5LFm60EArhmWwPwbziUqIrRuHY3DISIiHU1BJAB8VVjG3UtzKS2vIiwkiNmZqWSN7oPFcmbA0DgcIiLSkRRE/JjLZVi8dhcLPtqO02VI6daZhVkZpPaK9nRpIiIigIKI3zpc4eC+5Rv5dMdhACaO6MXj159Ll3A1uYiIeA/9Kvmg02fIbeg6ji92HeGe13I5aHcQERrEr69N46bzejfYFSMiIuJJCiI+pqEZchP+c2fLFanxLFyzk2c+3o7LwIAeXXh+WgaDekZ5sGIREZHGKYj4kMZmyC21VfGTJTkMjo9iW6kdgJtG9mbOdUOJDFMTi4iI99KvlI9oaobcU8u2ldrpFBrMb65P44aM3h1ZnoiISJu4bdK7d955h5SUFEJCQjj//PPZsmULAPn5+YwaNYrY2FhmzZqFMY1NNi9NaW6G3FMem6gQIiIivsMtQWTXrl3ceuutzJ8/n+LiYvr27cuPf/xjHA4HmZmZjBw5kuzsbAoKCnjppZfc8ZYBp6Uz34YG64JUERHxHW4JIlu2bGHu3LlMnjyZnj17Mn36dLKzs/nggw+w2WwsWLCA/v37M3fuXF588UV3vGXAaenMt5ohV0REfIlbrhGZMGFCvefbtm1jwIAB5OXlMWbMGCIjIwEYNmwYBQUFTe7L4XDgcDjqnpeXl7ujRJ83OjmO+OhwSssdDb6uGXJFRMQXue0akVOqq6t58sknufPOOykvLyc5ObnuNYvFQnBwMEePHm10+3nz5mG1WuseSUlJ7i7RJ5WWVxHZyGBkmiFXRER8lduDyC9+8Qu6dOnC7bffTkhICOHh4fVej4iIoLKystHtH374YWw2W92jqKjI3SX6nH8WHOCaZz9l96HjRIQGERMZWu/1eGsEi2/J0Ay5IiLic9x6++5HH33EH/7wB9avX09oaChxcXHk5+fXW8dutxMWFtboPsLDw88IL4GqutbFE6u38ud1ewAY1tvKwqkZJMZ20gy5IiLiF9wWRHbv3s20adNYvHgxqampAIwaNYo///nPdesUFhbicDiIi9N1DM0pKqtkxrJc8oqOAXDbhcn87KrBhIcEA2iGXBER8Qtu6Zo5ceIEEyZMYOLEiVx33XVUVFRQUVHBxRdfjM1m45VXXgFg/vz5jBs3juDgYHe8rd9anV/K1c9+Sl7RMaIjQnjhf0byy8zUuhAiIiLiLyzGDSOMvf3221x//fVnLN+zZw8bN24kKyuLqKgonE4na9euZejQoS3ed3l5OVarFZvNRnS0f09f76h1Mu/9rbz0eSEA6X1ieG5qOr1jIz1bmIiISCu19PfbLUGkOcXFxWRnZzN27Fi6d+/eqm0DJYjsPXKcGUtz2VxsA+D276Uw68rBhAa7/XpiERGRdtfS3+8OmWsmMTGRxMTEjngrn/Tupv089OZmKhy1xEaG8tTk4Vw2pKenyxIREWl3mvTOg6pqnDz2bgGvfvktAKP6xfLs1HQSrJ08XJmIiEjHUBDxkN2HKrhraS5bSk6OHHvn9/tz/xWDCFFXjIiIBBAFkXbgdJkmx/l4O7eYR1ZuprLaSdfOYSy4eQSXDGrdtTMiIiL+QEHEzVbnlzBnVQEltv/OlptgjWB2ZiqXDOrBr/7+DcuzT44WOyYljmempNMzWhPViYhIYFIQcaPV+SVMX5LDd29DKrVV8ZMlOfSyRrDfVoXFAndfNpB7Lh+oEVFFRCSgKYi4idNlmLOq4IwQAtQt22+rontUOM/cPIKxA7p1ZHkiIiJeSVdGusmGPWX1umMa8+trhyqEiIiI/IeCiJsctDcfQgCqna52rkRERMR3KIi4SY+oll1w2tL1REREAoGCiJuMTo6jZ3R4o69bOHn3zOhkzTwsIiJyioKIm2wtLaexWXtO3RczOzNVd8mIiIicRnfNnCVjDEu+/JbH3i2gutZFbGQoQRYLR45X160T/59xRManJXiwUhEREe+jIHIWyqtqePjNzby3uQSAcef04HeThhPdKbTJkVVFRETkJAWRNtq07xgzlubybVklIUEWHrpqCP/vomQslpOB44L+XT1coYiIiPdTEGklYwx//ayQeR9socZp6B3biYVZGYxIivF0aSIiIj5HQaQVbJU1zHojj38UHADgyqE9eWLScKydQj1cmYiIiG9SEGmh3G+PMmNpLsXHThAWHMTPrzmHH17Qt64rRkRERFpPQaQZLpfhxXV7+O3qrdS6DH27RrJwagbn9rZ6ujQRERGfpyDShKPHq3lgRR5rth4E4JphCcy/4VyiItQVIyIi4g4BGUScLtPs7bXZhWXcvSyXElsVYSFBzM5MJWt0H3XFiIiIuFHABZHV+SXMWVVQb6bchNMGHHO5DH/49y6e+sd2nC5DSrfOLMzKILVXtAerFhER8U8BFURW55cwfUkO3x2JvdRWxfQlOfx20rm8u6mUf28/BMDEEb14/Ppz6RIeUP9MIiIiHSZgfmGdLsOcVQVnhBCgbtlDb27GZSAiNIhfX5vGTef1VleMiIhIOwqYILJhT1m97piGuAwkxnTiLz8axeD4qA6qTEREJHAFzOy7B+1Nh5BT7hk3QCFERESkgwRMEOkRFdGi9ZJiO7dzJSIiInJKwASR0clxJFgjaOyKDwsn754ZnRzXkWWJiIgEtIAJIsFBFmZnpgKcEUZOPZ+dmXrGeCIiIiLSfgImiACMT0tg8S0ZxFvrd9PEWyNYfEsG49MSPFSZiIhIYAqYu2ZOGZ+WwBWp8c2OrCoiIiLtL+CCCJzsprmgf1dPlyEiIhLwAqprRkRERLyLgoiIiIh4jIKIiIiIeIyCiIiIiHiMgoiIiIh4jIKIiIiIeIyCiIiIiHiMgoiIiIh4jIKIiIiIeIyCiIiIiHiMgoiIiIh4jNfPNWOMAaC8vNzDlYiIiEhLnfrdPvU73hivDyJ2ux2ApKQkD1ciIiIirWW327FarY2+bjHNRRUPc7lc7N+/n6ioKCwWi9v2W15eTlJSEkVFRURHR7ttv94qkD6vPqv/CqTPq8/qvwLl8xpjsNvt9OrVi6Cgxq8E8fozIkFBQfTu3bvd9h8dHe3X/xG+K5A+rz6r/wqkz6vP6r8C4fM2dSbkFF2sKiIiIh6jICIiIiIeE7BBJDw8nNmzZxMeHu7pUjpEIH1efVb/FUifV5/VfwXa522O11+sKiIiIv4rYM+IiIiIiOcpiIiIiIjHKIiIiIiIxyiI+Il33nmHlJQUQkJCOP/889myZUuz22RmZmKxWOoe48aN64BKpaVeeumleu1z6vHSSy81uZ3a1XsdOXKE5ORkCgsL65a15dgFtbO3+W7btvX4hQBsW+OnNm/ebM477zwTExNjHnzwQeNyuZrd5pNPPjFDhgwxXbt2NU899VQHVOkeO3fuNLGxsWb58uWmtLTU3HTTTWbs2LHNbpeQkGA2b95sjh49ao4ePWoqKio6oNqzN2PGDAPUPfr379/sNr7Ytg6Ho65tjh49aoqKiky3bt3Mrl27mtzO19r18OHDpl+/fmbPnj11y9py/Brj3e186NAhM2bMGAPUfda2HrvGeH87N9SubTl2jfHudjWm4bZt6/FrjPe3rbv5ZRCpqqoy/fr1M3fccYfZuXOnufrqq81f/vKXJrc5ePCgiY6ONnPmzDHbt283GRkZZs2aNR1U8dlZtWqVWbx4cd3zNWvWmLCwsCa3KSoqMvHx8e1dWru44IILzHvvvVd3kJaXlze5vi+37el+85vfmNtvv73JdXytXRv6Am/L8WuM97fz5Zdfbn7/+9/X+6xtOXaN8f52bqhdjWn9sWuM97erMQ237Xe15Pg1xvvbtj34ZRBZuXKliY2NNcePHzfGGLNx40Zz4YUXNrnN008/bQYPHlz3l9fbb79tpk2b1u61tofFixeb1NTUJtd58803Tffu3U1iYqKJjIw0N998sykrK+ugCtuupqbGREVFGbvd3uJt/KFtT5w4YXr06NHol9wpvtauDX2Bt+X4Ncb72/nUX8JN/Vi15Ng1xvvbuaF2bcuxa4z3t6sxzbdtS49fY7y/bduDX14jkpeXx5gxY4iMjARg2LBhFBQUNLvNZZddVjex3ujRo8nJyWn3Wt2turqaJ598kjvvvLPJ9bZv387IkSP58MMPyc7OprCwkEceeaSDqmy7TZs2YYxhxIgRdOrUifHjx/Ptt982uY0/tO3SpUsZM2YM/fr1a3I9X2vXF154gXvuuafesrYcv6e28+Z2TklJafL1lh674P3t3FC7tuXYBe9vV2i+bVt6/IL3t2278HQSag/333+/ufPOO+st69atW5Op8oYbbjBPPPFE3fOKigoTHR3dbjW2l1mzZpnhw4eb6urqVm33ySefmG7durVTVe6zZMkSc/7555sNGzaY3bt3mwkTJpjx48c3uY0/tO2oUaPM+++/3+rtfKVdOe0vybYcv8b4TjvTyF/NbT12jfHedj79s7bl2DXGd9rVmMbbtq3HrzHe27bu5PWz77ZFSEjIGUPnRkREUFlZSWxsbIu2ObW+L/noo4/4wx/+wPr16wkNDW3VtjExMRw+fBiHw+HVww5PmzaNadOm1T1fuHAhKSkplJeXNzqLpa+37c6dO9m5c2ebrpz3lXY9XVuO34a286V2PptjF3yjndty7IJvtyuc3fELvtG2Z8svu2bi4uI4dOhQvWV2u52wsLAWb9Pc+t5m9+7dTJs2jcWLF5Oamtrs+pMmTWL9+vV1z7/66ivi4+N97j96TEwMLpeLkpKSRtfx9bZ9/fXXmTBhQot+oPyhXdty/Da0na+0c2uPXfCPdm7JsQu+266ntOb4Bf9o29byyyAyatSoeg1ZWFiIw+EgLi6uxdts3LiRxMTEdq3TXU6cOMGECROYOHEi1113HRUVFVRUVGCMoby8nJqamjO2GTZsGPfddx9ffvkl7777Lo8++miL+qY97f777+f111+ve/7VV18RFBREUlJSo9v4ctsCrF69mksvvbTeMn9r19O15fhtaDtfaOemjl3wr3Zuy7ELvtmup2vo+AX/atuz5um+ofZQU1Njunfvbl5++WVjjDF33HGHmTBhgjHGGJvN1mAf7KFDh0xERIRZs2aNqampMddcc42ZMWNGh9bdVitXrqx3b/6px549e0zfvn3NypUrz9imurra3HbbbSYqKsr079/fzJkzx9TU1HR88a308ssvmwEDBpi1a9eajz/+2AwZMsTcdtttxhj/bNvKykoTFhZmtmzZUm+5v7Ur37m7orHj1xjfb2e+c4dQY8euMb7fzqd/lqaOXWN8v12NOfMakcaOX2N8v23dyS+DiDEnD/BOnTqZHj16mK5du5r8/HxjTOONb4wxixYtMqGhoaZbt26mb9++prS0tAMrlpZ66KGHTExMjElKSjIzZ86sG+xHbeu7vvsF3tjxa4za2Zd8t10bO3aNUbsGMosx/zkH6IeKi4vJzs5m7NixdO/evUXb7Ny5ky1btnDJJZc0eQGV+B61rW9py/ELamd/pXb1X34dRERERMS7+eXFqiIiIuIbFERERETEYxRERERExGMURERERMRjFERERETEYxRERERExGMURERERMRjFERERETEYxRERERExGP+P/kOeMWqP3SdAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x1,y4)\n",
    "plt.plot(x1,y5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9968b8db-ee20-43f1-ba16-f1da798a0822",
   "metadata": {},
   "source": [
    "# 总结"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "835aa111-9fff-4259-825c-7f2b0d161149",
   "metadata": {},
   "source": [
    "- 两种处理数据的结果在较简单的维度上看似区别不大\n",
    "- 每一次微弱噪声的随机刷新，拟合结果在小范围变动，对数据的提前清洗十分关键，同时可多种方法拟合\n",
    "- 机器学习算法有一种范化的追求，在更为复杂的非线性分析中两者优劣或更为明显\n",
    "- 经过两种方法的简单使用，在噪声较小范围，拟合值与期望值接近\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0e63998f-13b5-417c-a251-ba28e84dc3c4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
